#pragma once
#include <iostream>
using namespace std;

//class A
//{
//public:
//	A(char a1 = 1)
//		: _a1(a1)
//	{
//		cout << "A(char a1 = 1)" << this << endl;
//	}
//	~A()
//	{
//		cout << "~A()" << endl;
//	}
//private:
//	char _a1;
//};
//
//class B
//{
//public:
//	B(char a1 = 2)
//		: _a1(a1)
//	{
//		cout << "B(int a1 = 2)" << endl;
//	}
//private:
//	char _a1;
//};


//class A
//{
//public:
//	A(int a1 = 0, int a2 = 0)
//		: _a1(a1)
//		, _a2(a2)
//	{
//		cout << "A(int a1 = 0, int a2 = 0)" << this << endl;
//	}
//	A(const A& ra)
//		: _a1(ra._a1)
//		, _a2(ra._a2)
//	{
//		cout << "A(const A& ra)" << endl;
//	}
//
//	~A()
//	{
//		cout << "~A():" << this << endl;
//	}
//private:
//	int _a1;
//	int _a2;
//};

//class Stack
//{
//public:
//    Stack()
//    {
//        cout << "Stack()" << endl;
//        _a = new int[4];
//        _top = 0;
//        _capacity = 4;
//    }
//
//    ~Stack()
//    {
//        cout << "~Stack()" << endl;
//        delete[] _a;
//        _top = _capacity = 0;
//    }
//
////private:
//    int _top;
//    int _capacity;
//    int* _a;
//};

//class A
//{
//public:
//	A(char a1 = 1)
//		: _a1(a1)
//	{
//		cout << "A(char a1 = 1)" << this << endl;
//	}
//	~A()
//	{
//		cout << "~A()" << endl;
//	}
//private:
//	char _a1;
//};
//
//class B
//{
//public:
//	B(char a1 = 2)
//		: _a1(a1)
//	{
//		cout << "B(int a1 = 2)" << endl;
//	}
//private:
//	char _a1;
//};